package com.hsgene.discount.persistence;

import com.hsgene.common.util.support.LimitHelper;
import com.hsgene.common.util.support.OrderHelper;
import com.hsgene.coupon.dto.GeneticUserDiscountDto;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * 用户优惠券Repository
 *
 * @author wangbing
 * @version 1.0, 2018/10/11
 */
@Repository
public interface GeneticUserDiscountRepository {

    /**
     * 查询用户优惠券
     *
     * @param userId 用户id
     * @return 优惠券
     */
    List<GeneticUserDiscountDto> queryAllUserDiscount(@Param("userId") String userId);

    /**
     * 获取用户优惠券数量
     *
     * @param userId             用户id
     * @param clientDiscountType 客户端优惠券类目
     * @return 优惠券数量
     */
    int getUserDiscountCount(@Param("userId") String userId, @Param("clientDiscountType") Integer clientDiscountType);

    /**
     * 分页查询用户优惠券
     *
     * @param userId             用户id
     * @param clientDiscountType 客户端优惠券类目
     * @param orderHelper        排序参数
     * @param limitHelper        分页参数
     * @return
     */
    List<GeneticUserDiscountDto> queryUserDiscount(
            @Param("userId") String userId,
            @Param("clientDiscountType") Integer clientDiscountType,
            @Param("orderHelper") OrderHelper orderHelper,
            @Param("limitHelper") LimitHelper limitHelper);
}
